package zhanglu.family.socket.textline.server;

import org.apache.mina.core.service.IoHandlerAdapter;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.core.session.IoSession;

/**
 * 服务端消息处理
 * 
 * @author zhanglu
 * @date 2016-09-18
 * @description 以下介绍了全部7个方法，各有用途
 */
public class BaseServerHandler extends IoHandlerAdapter {

    /**
     * sessionCreated:当一个新的连接建立时，由I/O processor thread调用；
     * 
     */
    @Override
    public void sessionCreated(IoSession session) throws Exception {

        super.sessionCreated(session);
    }

    /**
     * sessionOpened:当连接打开是调用
     */
    @Override
    public void sessionOpened(IoSession session) throws Exception {

        super.sessionOpened(session);
    }

    /**
     * messageReceived:当接收了一个消息时调用,这个也是最重要的
     */
    @Override
    public void messageReceived(IoSession session, Object message) throws Exception {

    }

    /**
     * messageSent：当一个消息被(IoSession#write)发送出去后调用
     */
    @Override
    public void messageSent(IoSession session, Object message) throws Exception {

        super.messageSent(session, message);
    }

    /**
     * sessionIdle:当连接进入空闲状态时调用
     */
    @Override
    public void sessionIdle(IoSession session, IdleStatus status) throws Exception {

        super.sessionIdle(session, status);
    }

    /**
     * sessionClosed:当连接关闭时调用
     */
    @Override
    public void sessionClosed(IoSession session) throws Exception {

        super.sessionClosed(session);

    }

    /**
     * exceptionCaught:当实现IoHandler的类抛出异常时调用
     */
    @Override
    public void exceptionCaught(IoSession session, Throwable cause) throws Exception {

        // System.out.println("异常捕获,进程可能非法关闭");
    }

}
